package org.example.mybatisplus.utils;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.net.NetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.http.HttpUtil;
import org.apache.logging.log4j.util.Base64Util;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * @Description: java类作用描述 TODO
 * @Author: renml
 * @CreateDate: 2025/5/21 15:50
 * @UpdateUser: renml
 * @UpdateDate: 2025/5/21 15:50
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public class Test {
    public static void main(String[] args) {
        // 创建文件
        File file = FileUtil.touch("example.txt");
        System.out.println("文件创建成功：" + file.getAbsolutePath());
        // 写入文件内容
        FileUtil.writeUtf8String("Hello, Hutool!", "example.txt");
        System.out.println("文件写入成功");

        // 读取文件内容
        String content = FileUtil.readUtf8String("example.txt");
        System.out.println("文件内容：" + content);

        // 驼峰命名转换
        String camelCase = StrUtil.toCamelCase("user_name");
        System.out.println("驼峰命名：" + camelCase);

        // 字符串反转
        String reversed = StrUtil.reverse("Hello, Hutool!");
        System.out.println("反转后的字符串：" + reversed);

        // MD5加密
        String md5 = DigestUtil.md5Hex("Hello, Hutool!");
        System.out.println("MD5加密结果：" + md5);

        // Base64编码
        String base64 = Base64Util.encode("Hello, Hutool!");
        System.out.println("Base64编码结果：" + base64);

        // 获取本机IP地址
        String ip = NetUtil.getLocalhostStr();
        System.out.println("本机IP地址：" + ip);

        // 发送GET请求
        String response = HttpUtil.get("https://api.github.com");
        System.out.println("GET请求响应：" + response);

        // 创建一个列表
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(1);

        // 去重
        List<Integer> distinctList = CollUtil.distinct(list);
        System.out.println("去重后的列表：" + distinctList);

    }
}